package com.xtpt.disaster.utils;

import org.springframework.util.ObjectUtils;

import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

/**
 * 对象方法类
 *
 * HZJ
 */
public class MyBeanUtils {

    /**
     * 将任意类型的bean对象，转换为map对象，可用于请求体参数封装。
     * @param bean
     * @param <T>
     * @return
     */
    public static <T> Map<String,String> covertBean(T bean){

        Field[] field = bean.getClass().getDeclaredFields(); //获取实体类的所有属性，返回Field数组
        Map<String,String> map = new HashMap<>();
        for(int k=0;k<field.length;k++){
            field[k].setAccessible(true);
            String name = field[k].getName();
            //获取字段的值
            try {
                //方法:get(Object obj) 返回指定对象obj上此 Field 表示的字段的值
                Object value = field[k].get(bean);
                if(!ObjectUtils.isEmpty(value)){
                    map.put(name,String.valueOf(value));
                }
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }
        return map;
    }

}
